↳ ITRS
↳ ITRStoIDPProof
z
cond(y, x, y) → +@z(1@z, minus(x, +@z(y, 1@z)))
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
minus(x, x) → 0@z
minus(x, y) → cond(min(x, y), x, y)
cond(x0, x1, x0)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
z
cond(y, x, y) → +@z(1@z, minus(x, +@z(y, 1@z)))
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
minus(x, x) → 0@z
minus(x, y) → cond(min(x, y), x, y)
(0) -> (2), if ((y[0] →* v[2])∧(x[0] →* u[2]))
(1) -> (0), if ((+@z(y[1], 1@z) →* y[0])∧(x[1] →* x[0]))
(1) -> (3), if ((+@z(y[1], 1@z) →* y[3])∧(x[1] →* x[3]))
(3) -> (1), if ((x[3] →* x[1])∧(y[3] →* y[1])∧(min(x[3], y[3]) →* y[1]))
cond(x0, x1, x0)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
z
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
(0) -> (2), if ((y[0] →* v[2])∧(x[0] →* u[2]))
(1) -> (0), if ((+@z(y[1], 1@z) →* y[0])∧(x[1] →* x[0]))
(1) -> (3), if ((+@z(y[1], 1@z) →* y[3])∧(x[1] →* x[3]))
(3) -> (1), if ((x[3] →* x[1])∧(y[3] →* y[1])∧(min(x[3], y[3]) →* y[1]))
cond(x0, x1, x0)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
z
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
(3) -> (1), if ((x[3] →* x[1])∧(y[3] →* y[1])∧(min(x[3], y[3]) →* y[1]))
(1) -> (3), if ((+@z(y[1], 1@z) →* y[3])∧(x[1] →* x[3]))
cond(x0, x1, x0)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
(1) (x[3]=x[1]∧min(x[3], y[3])=y[1]∧x[1]=x[3]1∧y[3]=y[1]∧+@z(y[1], 1@z)=y[3]1 ⇒ COND(y[1], x[1], y[1])≥NonInfC∧COND(y[1], x[1], y[1])≥MINUS(x[1], +@z(y[1], 1@z))∧(UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥))
(2) (<@z(x[3], y[3])=x0∧if(x0, x[3], y[3])=y[3] ⇒ COND(y[3], x[3], y[3])≥NonInfC∧COND(y[3], x[3], y[3])≥MINUS(x[3], +@z(y[3], 1@z))∧(UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥))
(3) (x1=x1∧<@z(x2, x1)=FALSE ⇒ COND(x1, x2, x1)≥NonInfC∧COND(x1, x2, x1)≥MINUS(x2, +@z(x1, 1@z))∧(UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥))
(4) (x4=x3∧<@z(x4, x3)=TRUE ⇒ COND(x3, x4, x3)≥NonInfC∧COND(x3, x4, x3)≥MINUS(x4, +@z(x3, 1@z))∧(UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥))
(5) (<@z(x2, x1)=FALSE ⇒ COND(x1, x2, x1)≥NonInfC∧COND(x1, x2, x1)≥MINUS(x2, +@z(x1, 1@z))∧(UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥))
(6) (<@z(x3, x3)=TRUE ⇒ COND(x3, x3, x3)≥NonInfC∧COND(x3, x3, x3)≥MINUS(x3, +@z(x3, 1@z))∧(UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥))
(7) (x2 + (-1)x1 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x1 + x2 ≥ 0∧0 ≥ 0)
(8) (-1 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound ≥ 0∧0 ≥ 0)
(9) (x2 + (-1)x1 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x1 + x2 ≥ 0∧0 ≥ 0)
(10) (-1 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound ≥ 0∧0 ≥ 0)
(11) (x2 + (-1)x1 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound + (-1)x1 + x2 ≥ 0∧0 ≥ 0)
(12) (-1 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound ≥ 0∧0 ≥ 0)
(13) (x1 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound + x1 ≥ 0∧0 ≥ 0)
(14) (-1 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound ≥ 0∧0 ≥ 0∧0 = 0∧0 = 0)
(15) (x1 ≥ 0∧x2 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound + x1 ≥ 0∧0 ≥ 0)
(16) (x1 ≥ 0∧x2 ≥ 0 ⇒ (UIncreasing(MINUS(x[1], +@z(y[1], 1@z))), ≥)∧-1 + (-1)Bound + x1 ≥ 0∧0 ≥ 0)
(17) (x[3]=x[1]1∧min(x[3], y[3])=y[1]1∧x[1]=x[3]∧y[3]=y[1]1∧+@z(y[1], 1@z)=y[3] ⇒ MINUS(x[3], y[3])≥NonInfC∧MINUS(x[3], y[3])≥COND(min(x[3], y[3]), x[3], y[3])∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥))
(18) (<@z(x[3], +@z(y[1], 1@z))=x5∧+@z(y[1], 1@z)=x6∧if(x5, x[3], x6)=+@z(y[1], 1@z) ⇒ MINUS(x[3], +@z(y[1], 1@z))≥NonInfC∧MINUS(x[3], +@z(y[1], 1@z))≥COND(min(x[3], +@z(y[1], 1@z)), x[3], +@z(y[1], 1@z))∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥))
(19) (x7=+@z(y[1], 1@z)∧<@z(x8, +@z(y[1], 1@z))=FALSE∧+@z(y[1], 1@z)=x7 ⇒ MINUS(x8, +@z(y[1], 1@z))≥NonInfC∧MINUS(x8, +@z(y[1], 1@z))≥COND(min(x8, +@z(y[1], 1@z)), x8, +@z(y[1], 1@z))∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥))
(20) (x10=+@z(y[1], 1@z)∧<@z(x10, +@z(y[1], 1@z))=TRUE∧+@z(y[1], 1@z)=x9 ⇒ MINUS(x10, +@z(y[1], 1@z))≥NonInfC∧MINUS(x10, +@z(y[1], 1@z))≥COND(min(x10, +@z(y[1], 1@z)), x10, +@z(y[1], 1@z))∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥))
(21) (<@z(x8, +@z(y[1], 1@z))=FALSE ⇒ MINUS(x8, +@z(y[1], 1@z))≥NonInfC∧MINUS(x8, +@z(y[1], 1@z))≥COND(min(x8, +@z(y[1], 1@z)), x8, +@z(y[1], 1@z))∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥))
(22) (<@z(+@z(y[1], 1@z), +@z(y[1], 1@z))=TRUE ⇒ MINUS(+@z(y[1], 1@z), +@z(y[1], 1@z))≥NonInfC∧MINUS(+@z(y[1], 1@z), +@z(y[1], 1@z))≥COND(min(+@z(y[1], 1@z), +@z(y[1], 1@z)), +@z(y[1], 1@z), +@z(y[1], 1@z))∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥))
(23) (-1 ≥ 0 ⇒ (UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-1 + (-1)Bound ≥ 0∧0 ≥ 0)
(24) (-1 + x8 + (-1)y[1] ≥ 0 ⇒ (UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-2 + (-1)Bound + (-1)y[1] + x8 ≥ 0∧0 ≥ 0)
(25) (-1 + x8 + (-1)y[1] ≥ 0 ⇒ (UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-2 + (-1)Bound + (-1)y[1] + x8 ≥ 0∧0 ≥ 0)
(26) (-1 ≥ 0 ⇒ (UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-1 + (-1)Bound ≥ 0∧0 ≥ 0)
(27) (-1 + x8 + (-1)y[1] ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-2 + (-1)Bound + (-1)y[1] + x8 ≥ 0)
(28) (-1 ≥ 0 ⇒ (UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-1 + (-1)Bound ≥ 0∧0 ≥ 0)
(29) (y[1] ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-1 + (-1)Bound + y[1] ≥ 0)
(30) (y[1] ≥ 0∧x8 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-1 + (-1)Bound + y[1] ≥ 0)
(31) (y[1] ≥ 0∧x8 ≥ 0 ⇒ 0 ≥ 0∧(UIncreasing(COND(min(x[3], y[3]), x[3], y[3])), ≥)∧-1 + (-1)Bound + y[1] ≥ 0)
POL(if(x1, x2, x3)) = -1 + (-1)x3 + x2 + (-1)x1
POL(TRUE) = -1
POL(MINUS(x1, x2)) = -1 + (-1)x2 + x1
POL(+@z(x1, x2)) = x1 + x2
POL(FALSE) = -1
POL(COND(x1, x2, x3)) = -1 + (-1)x3 + x2
POL(<@z(x1, x2)) = -1
POL(min(x1, x2)) = -1 + (-1)x2 + (-1)x1
POL(1@z) = 1
POL(undefined) = -1
COND(y[1], x[1], y[1]) → MINUS(x[1], +@z(y[1], 1@z))
COND(y[1], x[1], y[1]) → MINUS(x[1], +@z(y[1], 1@z))
MINUS(x[3], y[3]) → COND(min(x[3], y[3]), x[3], y[3])
MINUS(x[3], y[3]) → COND(min(x[3], y[3]), x[3], y[3])
+@z1 ↔
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDependencyGraphProof
↳ IDP
z
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
cond(x0, x1, x0)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDP
↳ IDependencyGraphProof
z
min(u, v) → if(<@z(u, v), u, v)
if(FALSE, u, v) → v
if(TRUE, u, v) → u
cond(x0, x1, x0)
min(x0, x1)
if(FALSE, x0, x1)
if(TRUE, x0, x1)
minus(x0, x1)